package com.excesys.exsecs.energy.entity;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 能耗设备注册表
 *
 * @author pig
 * @date 2024-02-20 17:10:34
 */
@Data
@TableName("bum_reg_dev")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "能耗设备注册表")
public class RegDev extends Model<RegDev> {


	/**
	* 主键
	*/
    @TableId(type = IdType.AUTO)
    @Schema(description="主键")
    private Long id;

	/**
	* 能耗设备国家编码（暂时可空）
	*/
    @Schema(description="能耗设备国家编码（暂时可空）")
    private String gbCode;


	/**
	 * 品类型号
	 */
	@Schema(description="品类型号")
	private String devCategory;
	/**
	 * 产品型号
	 */
	@Schema(description="产品型号")
	private String devModel;

	/**
	* 设备位置编码，对应devonlineinfo的unitno
	*/
    @Schema(description="设备位置编码，对应devonlineinfo的unitno")
    private String unitNo;

	/**
	* 设备编码
	*/
    @Schema(description="设备编码")
	@TableField(exist = false)
    private String deviceNo;

	/**
	 * 设备名称
	 */
	@Schema(description="设备名称")
	@TableField(exist = false)
	private String deviceName;

	/**
	* 表计名称（规范化别名）
	*/
    @Schema(description="表计名称（规范化别名）")
    private String unitName;

	/**
	* 计量设备类型 1电表 2水表 3气。。。
	*/
    @Schema(description="计量设备类型 1电表 2水表 3气。。。")
    private String energyType;

	/**
	 * 额定功率
	 */
	@Schema(description="额定功率")
	private String ratedPower;


	/**
	* 备注
	*/
    @Schema(description="备注")
    private String remark;


	/**
	 * 在线离线状态：0离线，1在线
	 */
	@Schema(description="在线离线状态：0离线，1在线")
	@TableField(exist = false)
	private String onlineStatus;

	/**
	 * 入参使用:unitNos集合,用逗号分割
	 */
	@Schema(description="入参使用:unitNos集合")
	@TableField(exist = false)
	private String unitNos;

	/**
	 * 实时通道集合
	 */
	@Schema(description ="实时通道集合")
	@TableField(exist = false)
	private List<JSONObject> realTimeList;

	/**
	* 创建人
	*/
	@TableField(fill = FieldFill.INSERT)
    @Schema(description="创建人")
    private String createBy;

	/**
	* 创建时间
	*/
	@TableField(fill = FieldFill.INSERT)
    @Schema(description="创建时间")
    private LocalDateTime createTime;

	/**
	* 更新人
	*/
	@TableField(fill = FieldFill.INSERT_UPDATE)
    @Schema(description="更新人")
    private String updateBy;

	/**
	* 更新时间
	*/
	@TableField(fill = FieldFill.INSERT_UPDATE)
    @Schema(description="更新时间")
    private LocalDateTime updateTime;


}